// pages/goods/list/index.js
import { reqGoodList } from '../../../api/good'

Page({
  /**
   * 页面的初始数据
   */
  data: {
    goodsList: [], // 商品列表数据
    total: 0, //数据总条数
    isFinish: false, // 判断数据是否加载完毕
    isLoading: false, //判断请求是否发送中
    //商品列表请求参数
    requestData: {
      page: 1, //页数
      limit: 10, //条数
      category1Id: '', //一级分类ID
      category2Id: '' //二级分类ID
    }
  },

  //获取商品列表数据
  getGoodList() {
    //请求正在发送中
    this.data.isLoading = true
    reqGoodList(this.data.requestData).then((res) => {
      const { data } = res

      //请求结束请求发送完成
      this.data.isLoading = false
      this.setData({
        goodsList: [...this.data.goodsList, ...data.records],
        total: data.total
      })
    })
  },

  //监听页面上拉事件
  onReachBottom() {
    //解构数据
    const { goodsList, total, requestData, isLoading } = this.data
    const { page } = requestData
    //页码+1
    //判断isLoading状态
    //如果状态为true 说明请求发送中 ,如果发送中就不强求下一页数据
    if (isLoading) return

    //数组长度和total对比
    if (goodsList.length === total) {
      // console.log('长度相等')
      this.setData({
        isFinish: true
      })
      return
    }

    this.setData({
      requestData: { ...this.data.requestData, page: page + 1 }
    })

    //重新获取商品列表
    this.getGoodList()
  },

  //监听页面下拉刷新
  onPullDownRefresh() {
    //将数据重置
    this.setData({
      goodsList: [],
      total: 0,
      isFinish: false,
      requestData: { ...this.data.requestData, page: 1 }
    })
    //发送最新请求
    this.getGoodList()

    wx.stopPullDownRefresh()
  },

  onLoad(options) {
    //合并对象,后面对象属性会往前合并
    Object.assign(this.data.requestData, options)

    //调用获取商品列表方法
    this.getGoodList()
  },
  //转发功能
  onShareAppMessage() {
    return {
      title: '很想很想再次见到你',
      path: '/pages/index/index',
      imageUrl: '../.../../../../../../assets/images/love.jpg'
    }
  },

  //把小程序分享朋友圈
  onShareTimeline() {}
})
